package com.ys.utils.mobao;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

import javax.annotation.PostConstruct;

/**
 * 类名：Mobo360Config
 * 功能：基础配置类
 * 详细：设置商户相关信息及证书文件和通知地址等
 * 以下代码只是为了方便商户测试而提供的样例代码，商户可以根据自己网站的需要，按照技术文档编写,并非一定要使用该代码。
 * 该代码仅供学习和研究接口使用，只是提供一个参考。
 */
@Configuration
public class Mobo360Config {
    @Value("${pay.merchant.id}")
    private String merchantId;
    public static String _merchantId;
    @Value("${pay.server.public.key.path}")
    private String publicKey;
    @Value("${pay.client.private.key.path}")
    private String privateKey;
    @Value("${pay.client.private.key.password}")
    private String clientPass;
    @Value("${pay.notify.url}")
    private String notifyUrl;
    public static String _notifyUrl;
    @Value("${pay.api.url}")
    private String apiUrl;

    // 请选择签名类型， MD5、SM、RSA(商户选用该类型)
//	public static final String SIGN_TYPE = "MD5";
//	public static final String SIGN_TYPE = "SM";
    public static final String SIGN_TYPE = "RSA";
    // MD5签名的key值   换成摩宝下发的md5 key
    public static String MD5_KEY = "ADANBgkqhkiG9w0BAQEFAASC";//******************RSA签名方式需配置***结束
    // 私钥文件密码
    public static String PASSWD;
    public static String pri_url = "e:/cer/SignPrivate.dat";
    public static String cer = "04598100CF71C44AD9076F6DC1FD81312AEF6EDDFEF5B4F08769012A73D57D4B7BEE8B4284B95192E47CE2D32DDC50697AAA91E8BAE90813498";
    //sm2算法ID默认1234567812345678(16进制显示)
    public static String userID = "31323334353637383132333435363738";


    //================本地=环境============================
    // 商户前台通知通知地址
    public static String MERCHANT_NOTIFY_URL = "http://192.168.31.9:5050/success.jsp";
    //	商户后台通知地址
    public static String MERCHANT_URL = "http://192.168.31.9:5050/callBack/notify";
    // 摩宝支付网关后台地址
    public static String MOBAOPAY_GETWAY;
    //测试服务器地址
    public static String MOBAOPAY_QUERY_ORDER = "http://192.168.31.9:7001/payGate/queryOrder";
    // 商户私钥文件--用于商户数据签名
    public static String PFX_FILE;
    // 摩宝支付公钥文件--摩宝支付后台通知时验签
    public static String CERT_FILE;

    @PostConstruct
    void init(){
        _merchantId = this.merchantId;
        PFX_FILE = this.privateKey;
        CERT_FILE = this.publicKey;
        MOBAOPAY_GETWAY = this.apiUrl;
        PASSWD = this.clientPass;
        _notifyUrl = this.notifyUrl;

        try {
            Mobo360SignUtil.init();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
